﻿using System.Threading.Tasks;

using Xc.DataAccess.Core;
using Xc.DataAccess.OneNetCore.Models;

namespace Xc.DataAccess.OneNetCore.Services
{
    public interface IOneNetService
    {
        /// <summary>
        /// 配置信息
        /// </summary>
        OneNetSetting Options { get; set; }

        /// <summary>
        /// 创建设备欸
        /// </summary>
        /// <param name="createDeviceRequest"></param>
        /// <returns></returns>
        Task<ResultData<DeleteDeviceRespondCore?>> CreateDevice(CreateDeviceRequest createDeviceRequest);
        /// <summary>
        /// 删除设备
        /// </summary>
        /// <param name="deviceid"></param>
        /// <returns></returns>
        Task<Result> DeleteDevice(string deviceid);
        /// <summary>
        /// 获取设备列表
        /// </summary>
        /// <param name="queryDevicesRequest"></param>
        /// <returns></returns>
        Task<ResultData<QueryDevicesRespondCore>> GetDevices(QueryDevicesRequest queryDevicesRequest);
        /// <summary>
        /// 获取设备状态
        /// </summary>
        /// <param name="queryDevicesStatusRequest"></param>
        /// <returns></returns>
        Task<ResultData<QueryDevicesStatusRespondCore>> GetDeviceStatus(QueryDevicesStatusRequest queryDevicesStatusRequest);
        /// <summary>
        /// 更新设备
        /// </summary>
        /// <param name="updateDevcieRequest"></param>
        /// <returns></returns>
        Task<Result> UpdateDevice(UpdateDevcieRequest updateDevcieRequest);
    }
}